package com.mentaleye.dal.dao;

import com.mentaleye.dal.model.GroupPerson;
import com.mentaleye.dal.model.GroupPersonExample;
import com.mentaleye.dal.model.GroupPersonKey;

import java.util.List;
import java.util.Map;

/**
 * Created by Rock on 2017/5/10.
 */
public interface GroupPersonDao {

    /**
     * 添加
     * @param groupPerson 分组学生对象
     * @return 返回处理结果
     */
    public boolean add(GroupPerson groupPerson);

    /**
     * 修改
     * @param groupPerson 分组学生对象
     * @return 返回处理结果
     */
    public boolean update(GroupPerson groupPerson);

    /**
     * 根据人员编号修改
     * @param groupPerson 分组学生对象
     * @return 返回处理结果
     */
    public boolean updateByPersonId(GroupPerson groupPerson);

    /**
     * 删除
     * @param key 主键对象
     * @return 返回删除结果
     */
    public boolean delete(GroupPersonKey key);

    /**
     * 条件删除
     * @param example 条件
     * @return 返回处理结果
     */
    public boolean deleteByExample(GroupPersonExample example);

    /**
     * 批量删除
     * @param map 删除条件
     * @return 返回处理结果
     */
    public boolean deleteGroupPersonList(Map<String,Object> map);

    /**
     * 查询
     * @param key 主键对象
     * @return 返回查询结果
     */
    public GroupPerson select(GroupPersonKey key);

    /**
     * 条件查询
     * @param example 条件
     * @return 返回查询结果
     */
    public List<GroupPerson> selectByExample(GroupPersonExample example);

    /**
     * 连表查询
     * @param map 查询条件
     * @return 返回查询结果
     */
    public List<Map<String, Object>> selectByMap(Map<String, Object> map);

    /**
     * 查询班级没有分组的学生
     * @param classId 班级编号
     * @return 返回查询结果
     */
    public List<Map<String, Object>> selectByNoClass(Integer classId);

    /**
     * 查询班级已分组的学生
     * @param oaclassId 班级编号
     * @return 返回查询结果
     */
    public List<Map<String, Object>> selectPersonByClassId(Integer oaclassId);

    /**
     * 查询未分组学生
     * @param personId 班级编号（分组父编号）
     * @return 返回查询结果
     */
    public List<Map<String, Object>> selectPersonNotGroup(Integer personId);
}
